﻿using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace RedDragon.Common.DBContext
{
    public class SqlSugarDBContext
    {
        private readonly ISqlSugarClient _db;

        public SqlSugarDBContext(ISqlSugarClient db)
        {
            this._db = db;
        }
        public void CreateDatabase()
        {
            //创建数据库
            _db.DbMaintenance.CreateDatabase();
            var rootPath = AppDomain.CurrentDomain.BaseDirectory;
            Type[] types = Assembly
            .LoadFrom(rootPath + "RedDragon.Common.dll")//如果 .dll报错，可以换成 xxx.exe 有些生成的是exe 
            .GetTypes().Where(it => it.FullName.Contains("RedDragon.Common.Domain."))//命名空间过滤，可以写其他条件
            .ToArray();//断点调试一下是不是需要的Type，不是需要的在进行过滤
                       //创建数据表
            _db.CodeFirst.SetStringDefaultLength(200).InitTables(types);//根据types创建表
        }
    }
}
